"use client";
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
AlertDialogTrigger,
} from "@/components/ui/alert-dialog";
import { Button } from "@/components/ui/button";
import { useState } from "react";
import { MdDeleteOutline } from "react-icons/md";
import { trpc } from "@/app/_trpc/client";
import { useToast } from "@/components/ui/use-toast";
import { Trash, Trash2 } from "lucide-react";
import { AreaSelect, FloorSelect } from "@/database/schema";
import Loading from "@/components/Loading";
const AlertDeleteFloor = ({
selectedFloor,
}: {
selectedFloor: Partial<FloorSelect | null>;
}) => {
const { toast } = useToast();
const [open, setOpen] = useState(false);
const utils = trpc.useUtils();
const { mutate, isPending } = trpc.floor.deleteProjectFloor.useMutation({
onSuccess: () => {
setOpen(false);
toast({
title: "Exito",
description: "Piso Eliminado con exito",
});
utils.projects.getProjectById.invalidate({value:selectedFloor?.projectId!});
},
onError: (opts) => {
toast({
title: "Error",
description: opts?.message,
variant: "destructive",
});
},
});
return (
<AlertDialog open={open} onOpenChange={setOpen}>
<AlertDialogTrigger>
<Trash2 size={20} className="text-red-500" />
</AlertDialogTrigger>
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>
Seguro que desea eliminar este piso?
</AlertDialogTitle>
<AlertDialogDescription>
Esta accion no puede ser reversible, este piso y todas sus areas
seran borradas permanentemente.
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel className="border-none">
<Button variant="link">Cancelar</Button>
</AlertDialogCancel>
<Button
className="bg-primary text-white"
disabled={isPending}
onClick={() => {
mutate({ id: selectedFloor?.id! });
}}
>
<span className="mr-2"> {isPending ? "Eliminando" : "Eliminar"}</span>
{isPending && <Loading size={15} />}
</Button>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>
);
};
export default AlertDeleteFloor;